//Original:/testcases/core/c_logi2op_log_l_shft/c_logi2op_log_l_shft.dsp
// Spec Reference: Logi2op <<=
# mach: bfin

.include "testutils.inc"
	start




// Logical <<= : negative data
// bit 0-7
imm32 r0, 0x81111111;
imm32 r1, 0x81111111;
imm32 r2, 0x81111111;
imm32 r3, 0x81111111;
imm32 r4, 0x81111111;
imm32 r5, 0x81111111;
imm32 r6, 0x81111111;
imm32 r7, 0x81111111;
R0 <<= 0; /* r0 = 0x81111111 */
R1 <<= 1; /* r1 = 0x40888888 */
R2 <<= 2; /* r2 = 0x20444444 */
R3 <<= 3; /* r3 = 0x10222222 */
R4 <<= 4; /* r4 = 0x08111111 */
R5 <<= 5; /* r5 = 0x04088888 */
R6 <<= 6; /* r6 = 0x02044444 */
R7 <<= 7; /* r7 = 0x01022222 */
CHECKREG r0, 0x81111111;
CHECKREG r1, 0x02222222;
CHECKREG r2, 0x04444444;
CHECKREG r3, 0x08888888;
CHECKREG r4, 0x11111110;
CHECKREG r5, 0x22222220;
CHECKREG r6, 0x44444440;
CHECKREG r7, 0x88888880;

// bit 8-15
imm32 r0, 0x82222222;
imm32 r1, 0x82222222;
imm32 r2, 0x82222222;
imm32 r3, 0x82222222;
imm32 r4, 0x82222222;
imm32 r5, 0x82222222;
imm32 r6, 0x82222222;
imm32 r7, 0x82222222;
R0 <<= 8;
R1 <<= 9;
R2 <<= 10;
R3 <<= 11;
R4 <<= 12;
R5 <<= 13;
R6 <<= 14;
R7 <<= 15;
CHECKREG r0, 0x22222200;
CHECKREG r1, 0x44444400;
CHECKREG r2, 0x88888800;
CHECKREG r3, 0x11111000;
CHECKREG r4, 0x22222000;
CHECKREG r5, 0x44444000;
CHECKREG r6, 0x88888000;
CHECKREG r7, 0x11110000;

// bit 16-23
imm32 r0, 0x83333333;
imm32 r1, 0x83333333;
imm32 r2, 0x83333333;
imm32 r3, 0x83333333;
imm32 r4, 0x83333333;
imm32 r5, 0x83333333;
imm32 r6, 0x83333333;
imm32 r7, 0x83333333;
R0 <<= 16;
R1 <<= 17;
R2 <<= 18;
R3 <<= 19;
R4 <<= 20;
R5 <<= 21;
R6 <<= 22;
R7 <<= 23;
CHECKREG r0, 0x33330000;
CHECKREG r1, 0x66660000;
CHECKREG r2, 0xCCCC0000;
CHECKREG r3, 0x99980000;
CHECKREG r4, 0x33300000;
CHECKREG r5, 0x66600000;
CHECKREG r6, 0xCCC00000;
CHECKREG r7, 0x99800000;

// bit 24-31
imm32 r0, 0x84444444;
imm32 r1, 0x84444444;
imm32 r2, 0x84444444;
imm32 r3, 0x84444444;
imm32 r4, 0x84444444;
imm32 r5, 0x84444444;
imm32 r6, 0x84444444;
imm32 r7, 0x84444444;
R0 <<= 24;
R1 <<= 25;
R2 <<= 26;
R3 <<= 27;
R4 <<= 28;
R5 <<= 29;
R6 <<= 30;
R7 <<= 31;
CHECKREG r0, 0x44000000;
CHECKREG r1, 0x88000000;
CHECKREG r2, 0x10000000;
CHECKREG r3, 0x20000000;
CHECKREG r4, 0x40000000;
CHECKREG r5, 0x80000000;
CHECKREG r6, 0x00000000;
CHECKREG r7, 0x00000000;

// Arithmetic <<= : positive data
// bit 0-7
imm32 r0, 0x41111111;
imm32 r1, 0x41111111;
imm32 r2, 0x41111111;
imm32 r3, 0x41111111;
imm32 r4, 0x41111111;
imm32 r5, 0x41111111;
imm32 r6, 0x41111111;
imm32 r7, 0x41111111;
R0 <<= 0;
R1 <<= 1;
R2 <<= 2;
R3 <<= 3;
R4 <<= 4;
R5 <<= 5;
R6 <<= 6;
R7 <<= 7;
CHECKREG r0, 0x41111111;
CHECKREG r1, 0x82222222;
CHECKREG r2, 0x04444444;
CHECKREG r3, 0x08888888;
CHECKREG r4, 0x11111110;
CHECKREG r5, 0x22222220;
CHECKREG r6, 0x44444440;
CHECKREG r7, 0x88888880;

// bit 8-15
imm32 r0, 0x42222222;
imm32 r1, 0x42222222;
imm32 r2, 0x42222222;
imm32 r3, 0x42222222;
imm32 r4, 0x42222222;
imm32 r5, 0x42222222;
imm32 r6, 0x42222222;
imm32 r7, 0x42222222;
R0 <<= 8;
R1 <<= 9;
R2 <<= 10;
R3 <<= 11;
R4 <<= 12;
R5 <<= 13;
R6 <<= 14;
R7 <<= 15;
CHECKREG r0, 0x22222200;
CHECKREG r1, 0x44444400;
CHECKREG r2, 0x88888800;
CHECKREG r3, 0x11111000;
CHECKREG r4, 0x22222000;
CHECKREG r5, 0x44444000;
CHECKREG r6, 0x88888000;
CHECKREG r7, 0x11110000;

// bit 16-23
imm32 r0, 0x43333333;
imm32 r1, 0x43333333;
imm32 r2, 0x43333333;
imm32 r3, 0x43333333;
imm32 r4, 0x43333333;
imm32 r5, 0x43333333;
imm32 r6, 0x43333333;
imm32 r7, 0x43333333;
R0 <<= 16;
R1 <<= 17;
R2 <<= 18;
R3 <<= 19;
R4 <<= 20;
R5 <<= 21;
R6 <<= 22;
R7 <<= 23;
CHECKREG r0, 0x33330000;
CHECKREG r1, 0x66660000;
CHECKREG r2, 0xCCCC0000;
CHECKREG r3, 0x99980000;
CHECKREG r4, 0x33300000;
CHECKREG r5, 0x66600000;
CHECKREG r6, 0xCCC00000;
CHECKREG r7, 0x99800000;

// bit 24-31
imm32 r0, 0x44444444;
imm32 r1, 0x44444444;
imm32 r2, 0x44444444;
imm32 r3, 0x44444444;
imm32 r4, 0x44444444;
imm32 r5, 0x44444444;
imm32 r6, 0x44444444;
imm32 r7, 0x44444444;
R0 <<= 24;
R1 <<= 25;
R2 <<= 26;
R3 <<= 27;
R4 <<= 28;
R5 <<= 29;
R6 <<= 30;
R7 <<= 31;
CHECKREG r0, 0x44000000;
CHECKREG r1, 0x88000000;
CHECKREG r2, 0x10000000;
CHECKREG r3, 0x20000000;
CHECKREG r4, 0x40000000;
CHECKREG r5, 0x80000000;
CHECKREG r6, 0x00000000;
CHECKREG r7, 0x00000000;


pass
